home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / applications / wp / fwmacros1.lha / UserMacros / english / RightAlign.fw < prev    next >
Encoding:
Text File  |  1994-10-04  |  1.9 KB  |  78 lines

  1. /*
  2. $AUTHOR:  Fernando Nunes e Manuel Lemos (UpperDesign@zeus.ci.ua.pt)
  3. $VER: RightAlign 1.01 (1.10.94)
  4.       Description:  ARexx macro for FinalWriter to horizontally align all
  5.                     selected graphics by the right coordinate of the
  6.                     rightmost object
  7. */
  8.  
  9. options results
  10.  
  11. /* obter uma lista dos objectos seleccionados */
  12. selecionados = 0
  13. FirstObject SELECTED
  14. do until result =0
  15.   selecionados = selecionados + 1
  16.   objectid.selecionados = result
  17.   NextObject objectid.selecionados SELECTED
  18. end
  19.  
  20. if selecionados > 1 then
  21. do
  22.  
  23.   OBJECTO_LINHA = 2
  24.  
  25.   /* determinar a coordenada do objecto mais à direita*/
  26.   do objecto = 1 to selecionados
  27.     GetObjectCoords objectid.objecto
  28.     coords = RESULT
  29.     PARSE VAR coords pagina esquerda cima direita baixo
  30.     GetObjectType objectid.objecto
  31.     tipo = result
  32.  
  33.     /* linhas */
  34.     if tipo = OBJECTO_LINHA then
  35.       do
  36.         if esquerda > direita then
  37.           direita = esquerda
  38.       end
  39.     else
  40.       direita = esquerda + direita
  41.     if objecto = 1 | direita > mais_a_direita then
  42.       mais_a_direita = direita
  43.   end
  44.  
  45.   /* mover os objectos para a direita */
  46.   do objecto = 1 to selecionados
  47.     GetObjectCoords objectid.objecto
  48.     coords = RESULT
  49.     PARSE VAR coords pagina esquerda cima direita baixo
  50.     GetObjectType objectid.objecto
  51.     tipo = result
  52.  
  53.     /* linhas */
  54.     if tipo = OBJECTO_LINHA then
  55.       do
  56.         if esquerda < direita then
  57.           do
  58.             esquerda = mais_a_direita - direita + esquerda
  59.             direita = mais_a_direita
  60.           end
  61.         else
  62.           do
  63.             direita = mais_a_direita - esquerda + direita
  64.             esquerda = mais_a_direita
  65.           end
  66.       end
  67.     else
  68.       esquerda = mais_a_direita - direita
  69.     SetObjectCoords objectid.objecto pagina esquerda cima direita baixo
  70.   end
  71.  
  72.   /* voltar a reselecionar todos os objectos selecionados antes */
  73.   do objecto = 1 to selecionados
  74.     SelectObject objectid.objecto MULTIPLE
  75.   end
  76.   redraw
  77. end
  78.